Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9-16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Kernkompetenzen
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1026 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor Ort oder online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: ASP.NET Web API
Zur Stichwortliste unseres Lexikons
Was ist
ASP.NET Web API
?
Das ASP.NET
Web API
ist eine .NET-basierte Bibliothek von Microsoft zur Erstellung
REST
-basierter
Webservice
s mit HTTP und
XML
/
JSON
. Das ASP.NET
Web API
ist eine Alternative zur
Windows Communication Foundation
(
WCF
).
Links
Paket:
https://www.nuget.org/packages/Microsoft.AspNet.WebApi
Website:
http://www.asp.net/web-api
Status
ASP.NET
Web API
galt immer schon als Teil von ASP.NET MVC, auch wenn es technisch einige Unterschiede gab, die auf die Implementierung durch verschiedene Entwicklungsteams zurückzuführen sind. Ab Version 6 ist WebAPI ist nun in ASP.NET MVC 6 komplett integriert wird.
Erscheinungstermine
Version 1: 11.08.2012 zusammen mit ASP.NET MVC 4
Version 2: 17.10.2013 zusammen mit
ASP.NET MVC 5
Version 2.1: 17.01.2014
Version 2.1: 01.07.2014
Version 6: erscheint 2015; WebAPI ist nun in ASP.NET MVC 6 komplett integriert wird.
Hintergründe zu ASP.NET
Web API
von Manfred Steyer
Die neue ASP.NET
Web API
wird die Erstellung von
REST
-basierten Services, welche auf so gut wie allen Plattformen konsumiert werden können, erheblich vereinfachen. Anders als beim Einsatz der
WCF
werden Details des darunterliegenden Protokolls nicht abstrahiert, weswegen der Entwickler volle Kontrolle über die auf HTTP-basierende Kommunikation hat.
Egal ob auf mobilen Geräten, in Web-Browsern oder bei Cloud-Services, egal ob auf der
Java
-Plattform, unter
PHP
oder .NET: HTTP wird überall unterstützt. Dies ist auch der Grund dafür, warum die
REST
-Bewegung, die den puren Einsatz von HTTP ohne zusätzliche Transportprotokolle wie
SOAP
oder WS-* fordert, in den letzten Jahren zunehmend an Bedeutung gewinnt.
Die ASP.NET
Web API
, welche im Rahmen von ASP.NET MVC 4 genutzt werden kann, wird in Zukunft die Entwicklung
REST
-basierter Services erheblich vereinfachen. Anders als
WCF
wird dabei das darunter liegende Protokoll nicht verborgen und abstrahiert, sondern ein direkter Zugriff auf die Möglichkeiten von HTTP gewährt. Ursprünglich sollte die
Web API
gemeinsam mit
WCF
verteilt werden. Allerdings entschied man sich bei Microsoft, dass sich ASP.NET MVC als übergeordnetes Framework besser eignet. Deswegen wurde sie von
WCF
Web API
in ASP.NET
Web API
umbenannt. Ausgeliefert wird sie mit ASP.NET MVC 4.
Einen einfachen
REST
-Service erstellen
Möchte man
REST
-Services über einen Web-Server zur Verfügung stellen, sind diese in einem ASP.NET MVC 4-Projekt anzulegen. Alternativ dazu kann sich der Entwickler auch, wie weiter unten beschrieben, selbst um das Hosting kümmern. In diesen Fällen wird ein eigener Web-Server, der im Lieferumfang der
Web API
enthalten ist, in einer benutzerdefinierten Anwendung gestartet.
REST
-Services leiten von ApiController ab (siehe Listing 1). Die vom Entwickler bereitgestellten
Methode
n dieser Klassen stellt
Web API
unter Verwendung von Konventionen via HTTP bereit. Beginnt der Name einer
Methode
zum Beispiel mit Get, kann sie über das HTTP-Verb GET erreicht werden. Dasselbe gilt analog für POST, PUT und DELETE. Weicht der Name einer
Methode
von dieser Konvention ab, kann diese mit den
Attribut
en HttpGet, HttpPost, HttpPut und HttpDelete mit diesen Verben assoziiert werden (siehe FindHotelsBySterne in Listing 1).
Weitere Verben können mit dem
Attribut
AcceptVerbs zugewiesen werden. Beispiele dafür finden sich in Listing 2, wo unter anderem das benutzerdefinierte Verb X-ECHO zur
Methode
Echo zugewiesen wird. In der aktuellen BETA verhindert der Einsatz von AcceptVerbs jedoch nicht, dass
Web API
zusätzlich auch die erwähnten Konventionen anwendet. Aus diesem Grund könnte der Aufrufer die
Methode
GetImplementationInfo in Listing 2 sowohl über X-INFO als auch über GET erreichen. Damit GET per Konvention nicht automatisch zugewiesen wird, wird hier jedoch unter Verwendung des
Attribut
es ActionName angegeben, dass intern der Name ImplementationInfo anstatt von GetImplementationInfo zu verwenden ist.
Listing 1
public class HotelsController : ApiController
{
public Hotel GetHotel(int id)
{
var rep = new HotelRepository();
var hotel = rep.FindById(id);
if (hotel == null) throw new HttpResponse
Exception
(HttpStatusCode.NotFound);
return hotel;
}
public Hotel PostHotel(Hotel hotel)
{
var rep = new HotelRepository();
rep.Create(hotel);
return hotel;
}
[HttpGet]
public List<Hotel> FindHotelsBySterne(int minSterne)
{
var rep = new HotelRepository();
var hotels = rep.FindBySterne(minSterne);
return hotels;
}
[…]
}
Listing 2
public class HotelsController : ApiController
{
[…]
[AcceptVerbs("X-ECHO")]
public List<Hotel> EchoHotels(List<Hotel> hotels)
{
return hotels;
}
[AcceptVerbs("X-INFO")]
[ActionName("ImplementationInfo")]
public string GetImplementationInfo()
{
[…]
}
}
Querverweise zu anderen Begriffen im Lexikon
Windows Communication Foundation (WCF)
ASP.NET MVC 5
Webservice
Exception
Attribut
Methode
Web API
Java
Representational State Transfer (REST)
JavaScript Object Notation (JSON)
Simple Object Access Protocol (SOAP)
Personal Home Page Tools (PHP)
Windows Communication Foundation (WCF)
Extensible Markup Language (XML)
Beratung & Support
REST versus SOAP (SOAP und REST im Vergleich)
Anfrage für Beratung/Consulting zu ASP.NET WEB API
Gesamter Beratungsthemenkatalog
Technischer Support zum ASP.NET WEB API
Schulungen
"End-to-End": Eine Best Practices-Softwarearchitektur für eine .NET-Anwendung von der Datenbank bis zur Benutzeroberfläche
.NET 4.5.1/.NET 4.5.2/4.5.3 Update / Neuerungen in .NET Framework 4.5.1/.NET Framework 4.5.2/.NET Framework 4.5.3
.NET 4.5-Update - Die Neuerungen in .NET Framework 4.5/4.5.1/4.5.2 und Visual Studio 2012/2013 im Überblick
ADO.NET Entity Framework (EF) - Objekt-Relationales Mapping
ASP.NET Core WebAPI 8.0/9.0/10.0: REST Services/HTTP Services/Microservices
ASP.NET WebAPI: REST-Services/HTTP-Services/Microservices
Open Data Protocol (OData)
Open Data Protocol (OData) mit WCF Data Services und/oder ASP.NET WebAPI und/oder RESTier
Plattformneutrale Hybrid-Anwendungen mit HTML5 und JavaScript (oder TypeScript) mit Electron (Hosted/Hybrid Web Apps)
Single-Page-Web-Applications (SPAs) entwickeln mit HTML5/CSS3 und JavaScript (oder TypeScript)
Umstieg von ASP.NET auf moderne Webtechniken (Single-Page-Web-Applications mit HTML, CSS, JavaScript/TypeScript, Angular, Vue.js, React u.a.)
Windows Communication Foundation (WCF) - Aufbauwissen
Windows Communication Foundation (WCF) - Basiswissen
Anfrage für eine individuelle Schulung zum Thema ASP.NET WEB API
Gesamter Schulungsthemenkatalog
Fachbücher
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C++ Core Guidelines Explained: Best Practices for Modern C++
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr